#include <affichage_graphique.h>


void	affichage_graphique(double x_min, double y_min, double x_max, double y_max, int *meilleur_chemin, int nb_villes, t_SOMMET *graphe)
{
	/*Pour garder la position relative en verticale (si l'ordonnée de la ville A est supérieur à l'ordonnée de la ville B alors on veut que la ville A soit affichée à l'écran plus haut que la ville B) on soustrait à y_max + radius + y_min, l'ordonnée de chaque ville*/
	double	radius = 5 ;
	int		i ;
	SDL_Surface	*f1 = NULL ;
	x_min = 800 * x_min ;
	x_max = 800 * x_max ;
	y_min = 700 * y_min ;
	y_max = 700 * y_max ;
	i = 0 ;
	f1 = newfenetregraphique(820, 720);
	SDL_FillRect(f1, NULL, SDL_MapRGB(f1->format, 180, 200, 255));
	
	/*Représente chaque ville par un disque noir et relie les villes consécutives du chemin solution entre elles par une ligne bleue*/
	while ( i < nb_villes )
	{
		if(i < nb_villes - 1)
		{
			Draw_Line(f1, radius + x_min + graphe[meilleur_chemin[i]].x * 800, y_max + radius + y_min - graphe[meilleur_chemin[i]].y * 700, radius + x_min + graphe[meilleur_chemin[i + 1]].x * 800, y_max + radius + y_min - graphe[meilleur_chemin[i + 1]].y * 700, SDL_PH_BLEU);
		}
		Draw_FillCircle (f1,radius + x_min + graphe[meilleur_chemin[i]].x * 800, y_max + radius + y_min - graphe[meilleur_chemin[i]].y * 700, radius, SDL_PH_NOIR) ;
		i++ ;
	}
	/*Relie la dernière ville du meilleur chemin à la première*/
	Draw_Line(f1, radius + x_min + graphe[meilleur_chemin[0]].x * 800, y_max + radius + y_min - graphe[meilleur_chemin[0]].y * 700, radius + x_min + graphe[meilleur_chemin[nb_villes - 1]].x * 800, y_max + radius + y_min - graphe[meilleur_chemin[nb_villes - 1]].y * 700, SDL_PH_BLEU);
	
	SDL_Flip(f1);
	getchar() ;
	getchar() ;	
}
